import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { SharedModule } from '@shared/shared.module';
import { ColorPickerModule } from 'ngx-color-picker';
import { SceneComponent } from './scene.component';
import { LeftComponent } from './left/left.component';
import { RightComponent } from './right/right.component';
import { CenterComponent } from './center/center.component';
import { TopComponent } from './top/top.component';
import { CImgComponent } from './componentCenter/c-img/c-img.component';
import { CTxtComponent } from './componentCenter/c-txt/c-txt.component';
import { CImgToolComponent } from './componentRight/c-img-tool/c-img-tool.component';
import { CTxtToolComponent } from './componentRight/c-txt-tool/c-txt-tool.component';
import { CWebComponent } from './componentCenter/c-web/c-web.component';
import { CPdfComponent } from './componentCenter/c-pdf/c-pdf.component';
import { CVideoComponent } from './componentCenter/c-video/c-video.component';
import { CAudioComponent } from './componentCenter/c-audio/c-audio.component';
import { CButtonComponent } from './componentCenter/c-button/c-button.component';
import { CWebToolComponent } from './componentRight/c-web-tool/c-web-tool.component';
import { CPdfToolComponent } from './componentRight/c-pdf-tool/c-pdf-tool.component';
import { CVideoToolComponent } from './componentRight/c-video-tool/c-video-tool.component';
import { CAudioToolComponent } from './componentRight/c-audio-tool/c-audio-tool.component';
import { CBtnToolComponent } from './componentRight/c-btn-tool/c-btn-tool.component';
import { LogicComponent } from './logic/logic.component';
import { CSelectComponent } from './componentCenter/c-select/c-select.component';
import { CSelectToolComponent } from './componentRight/c-select-tool/c-select-tool.component';
import { CTiebaComponent } from './componentCenter/c-tieba/c-tieba.component';
import { CTiebaToolComponent } from './componentRight/c-tieba-tool/c-tieba-tool.component';
import { CWeiboComponent } from './componentCenter/c-weibo/c-weibo.component';
import { CWeiboToolComponent } from './componentRight/c-weibo-tool/c-weibo-tool.component';
import { CBrainComponent } from './componentCenter/c-brain/c-brain.component';
import { CBrainToolComponent } from './componentRight/c-brain-tool/c-brain-tool.component';
import { CBulletComponent } from './componentCenter/c-bullet/c-bullet.component';
import { CBulletToolComponent } from './componentRight/c-bullet-tool/c-bullet-tool.component';
import { ModalComponent } from './modal/modal.component';
import { CQqComponent } from './componentCenter/c-qq/c-qq.component';
import { CQqToolComponent } from './componentRight/c-qq-tool/c-qq-tool.component';
import { ServerSocket } from '@core/services/ws.service';
import { CVoteComponent } from './componentCenter/c-vote/c-vote.component';
import { CVoteToolComponent } from './componentRight/c-vote-tool/c-vote-tool.component';
import { CCheckboxToolComponent } from './componentRight/c-checkbox-tool/c-checkbox-tool.component';
import { CJudgementToolComponent } from './componentRight/c-judgement-tool/c-judgement-tool.component';
import { CSgaudioToolComponent } from './componentRight/c-sgaudio-tool/c-sgaudio-tool.component';
import { CCheckboxComponent } from './componentCenter/c-checkbox/c-checkbox.component';
import { CJudgementComponent } from './componentCenter/c-judgement/c-judgement.component';
import { CSgaudioComponent } from './componentCenter/c-sgaudio/c-sgaudio.component';
import { CCausalComponent } from './componentCenter/c-causal/c-causal.component';
import { CCausalToolComponent } from './componentRight/c-causal-tool/c-causal-tool.component';
import { CSubjectiveComponent } from './componentCenter/c-subjective/c-subjective.component';
import { CSubjectiveToolComponent } from './componentRight/c-subjective-tool/c-subjective-tool.component';
import { CSixhatsComponent } from './componentCenter/c-sixhats/c-sixhats.component';
import { CSixhatsToolComponent } from './componentRight/c-sixhats-tool/c-sixhats-tool.component';
import { CMindmapComponent } from './componentCenter/c-mindmap/c-mindmap.component';
import { CMindmapToolComponent } from './componentRight/c-mindmap-tool/c-mindmap-tool.component';
import { CGuessComponent } from './componentCenter/c-guess/c-guess.component';
import { CGuessToolComponent } from './componentRight/c-guess-tool/c-guess-tool.component';
import { CBraingroupComponent } from './componentCenter/c-braingroup/c-braingroup.component';
import { CBraingroupToolComponent } from './componentRight/c-braingroup-tool/c-braingroup-tool.component';
import {MapComponent} from './map/map.component';
import { CSpecialBattleComponent } from './componentCenter/c-special-battle/c-special-battle.component';
import { CSpecialBattleToolComponent } from './componentRight/c-special-battle-tool/c-special-battle-tool.component';
import { CSeekComponent } from './componentCenter/c-seek/c-seek.component';
import { CSeekToolComponent } from './componentRight/c-seek-tool/c-seek-tool.component';
import { CBraininfoComponent } from './componentCenter/c-braininfo/c-braininfo.component';
import { CBraininfoToolComponent } from './componentRight/c-braininfo-tool/c-braininfo-tool.component';
import { COriginalityCaseComponent } from './componentCenter/c-originality-case/c-originality-case.component';
import { COriginalityCaseToolComponent } from './componentRight/c-originality-case-tool/c-originality-case-tool.component';
import { CSixHatComponent } from './componentCenter/c-six-hat/c-six-hat.component';
import { CSixHatToolComponent } from './componentRight/c-six-hat-tool/c-six-hat-tool.component';
import { CCoffeeComponent } from './componentCenter/c-coffee/c-coffee.component';
import { CCoffeeToolComponent } from './componentRight/c-coffee-tool/c-coffee-tool.component';

const Components = [
    CImgComponent,
    CTxtComponent,
    CImgToolComponent,
    CTxtToolComponent,
    CWebComponent,
    CPdfComponent,
    CVideoComponent,
    CAudioComponent,
    CButtonComponent,
    CWebToolComponent,
    CPdfToolComponent,
    CVideoToolComponent,
    CAudioToolComponent,
    CBtnToolComponent,
    LogicComponent,
    CSelectComponent,
    CSelectToolComponent,
    CSgaudioComponent,
    CSgaudioToolComponent,
    CCheckboxComponent,
    CCheckboxToolComponent,
    CVoteComponent,
    CVoteToolComponent,
    CJudgementComponent,
    CJudgementToolComponent,
    CTiebaComponent,
    CTiebaToolComponent,
    CWeiboComponent,
    CWeiboToolComponent,
    CBrainComponent,
    CBrainToolComponent,
    CBulletComponent,
    CBulletToolComponent,
    ModalComponent,
    CQqComponent,
    CMindmapComponent,
    CMindmapToolComponent,
    CCausalToolComponent,
    CCausalComponent,
    CSubjectiveComponent,
    CSubjectiveToolComponent,
    CQqToolComponent,
    CGuessComponent,
    CGuessToolComponent,
    CBraingroupComponent,
    CBraingroupToolComponent,
    MapComponent,
    CSeekComponent,
    CSeekToolComponent,
    CSpecialBattleComponent,
    COriginalityCaseComponent,
    COriginalityCaseToolComponent,
    CSpecialBattleComponent,
    CBraininfoComponent,
    CBraininfoToolComponent,
    CSixHatComponent,
    CSixhatsComponent,
    CCoffeeComponent,
    CSixhatsToolComponent,
];


const routes: Routes = [
    { path: 'edit', component: SceneComponent}
];

@NgModule({
  imports: [
      SharedModule,
      RouterModule.forChild( routes ),
      ColorPickerModule
  ],
  declarations: [
      SceneComponent,
      LeftComponent,
      RightComponent,
      CenterComponent,
      TopComponent,
      ...Components,
      CSixhatsComponent,
      CSixhatsToolComponent,
      CSpecialBattleComponent,
      CSpecialBattleToolComponent,
      CBraininfoComponent,
      CBraininfoToolComponent,
      COriginalityCaseComponent,
      COriginalityCaseToolComponent,
      CSixHatComponent,
      CSixHatToolComponent,
      CCoffeeComponent,
      CCoffeeToolComponent,


      ],
  providers: [
      ServerSocket
  ],
  exports: [ SceneComponent, ...Components, RouterModule],
  entryComponents: [
      ...Components,
      ModalComponent
  ]
})
export class SceneModule { }
